package main

import (
	"fmt"
	"github.com/gocql/gocql"
	"log"
)

func main() {
	// connect to the cluster
	cluster := gocql.NewCluster("127.0.0.1")
	cluster.Keyspace = "test_database"
	cluster.Consistency = gocql.Quorum
	cluster.NumConns = 3
	session, err := cluster.CreateSession() //设置连接池的数量,默认是2个（针对每一个host,都建立起NumConns个连接）
	if err != nil {
		fmt.Println(err)
	}
	defer session.Close()

	// 插入一条信息
	if err := session.Query(`INSERT INTO goods (id, name,address,password) VALUES (?,?,?,?)`,
		2, "Tom", "北京", "123123").Exec(); err != nil {
		log.Fatal(err)
	}

	var id int
	var text string

	// 查询一条信息 注意：显示的字段信息，需要跟sql语句输出显示的字段数量一致，
	// 否则报 gocql: not enough columns to scan into: have 2 want 4
	if err := session.Query(`select id,name from goods`).Consistency(gocql.One).Scan(&id, &text); err != nil {
		log.Fatal(err)
	}
	fmt.Println("select goods one:", id, text)

	// 查询全部信息
	iter := session.Query(`select id,name from goods`).Iter()
	for iter.Scan(&id, &text) {
		fmt.Println("goods:", id, text)
	}
	if err := iter.Close(); err != nil {
		log.Fatal(err)
	}
}
